package com.example.zhunongzonghe.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.zhunongzonghe.beans.ZnOrderBean;
import com.example.zhunongzonghe.beans.ZnOrderDetailsBean;
import com.example.zhunongzonghe.entity.ZnOrder;

import java.util.List;


public interface IZnOrderService extends IService<ZnOrder> {

    /**
     * 后台全部订单分页列表
     * @param currentPage
     * @param pageSize
     * @return
     */
    Page<ZnOrderBean> queryOrderAll(Integer currentPage, Integer pageSize,Object searchInfo);

    /**
     * 用户查询自己的全部订单
     * @param userName
     * @param pageId
     * @param pageSize
     * @return
     */
    IPage<ZnOrderBean> queryOrderAllWithPage(String userName, Integer pageId, Integer pageSize);

    /**
     * 用户立即购买页提交订单
     * @param znOrderBean
     * @param username
     */
    void buyNow(ZnOrderBean znOrderBean,String username);

    /**
     * 通过订单号查询订单信息
     * @param orderNumBer
     * @return
     */
    ZnOrder getOneOrder(String orderNumBer);

    /**
     * 后台查询全部未支付订单
     * @param currentPage
     * @param pageSize
     * @param searchInfo
     * @return
     */
    Page<ZnOrderBean> nonPaymentAll(Integer currentPage, Integer pageSize,Object searchInfo);

    /**
     * 后台查询全部未发货订单
     * @param currentPage
     * @param pageSize
     * @param searchInfo
     * @return
     */
    Page<ZnOrderBean> notYetShipped(Integer currentPage, Integer pageSize,Object searchInfo);

    /**
     * 后台全部未收货订单信息
     * @param currentPage
     * @param pageSize
     * @param searchInfo
     * @return
     */
    Page<ZnOrderBean> notReceive(Integer currentPage, Integer pageSize,Object searchInfo);
    /**
     * 后台全部退款订单信息
     * @param currentPage
     * @param pageSize
     * @param searchInfo
     * @return
     */
    Page<ZnOrderBean> AllNoRefund(Integer currentPage, Integer pageSize,Object searchInfo);
    /**
     * 查询当前订单信息
     * @param OrderId
     * @return
     */
    List<ZnOrderDetailsBean> selectOrderDetails(Integer OrderId);

    /**
     * 用户收货
     * @param orderNumBer
     * @param username
     */
    void updateTakeStatus(String orderNumBer, String username);
}
